<?php
// 记录开始时间和内存使用
$startTime = microtime(true);
$startMemory = memory_get_usage();

// 1. 先定义基本常量，避免配置文件加载时出现未定义常量错误
define('APP_PATH', __DIR__ . '/../'); // 应用根路径
define('RUNTIME_PATH', APP_PATH . 'runtime/'); // 运行时路径
define('APP_DEBUG', true); // 生产环境设为false，减少日志记录

// 确保运行时目录存在
if (!is_dir(RUNTIME_PATH)) {
    mkdir(RUNTIME_PATH, 0755, true);
}

// 2. 包含核心框架文件
require_once APP_PATH . 'fastphp/FastPHP.php';

// 3. 加载Composer自动加载器
require_once APP_PATH . 'vendor/autoload.php';

// 4. 加载配置文件（此时所有必要的常量都已定义）
$config = include APP_PATH . 'config/config.php';
$GLOBALS['config'] = $config;

// 5. 初始化并运行框架
$app = new fastphp\FastPHP(APP_PATH);
$app->run();

// 记录结束时间和内存使用
$endTime = microtime(true);
$endMemory = memory_get_usage();

// 计算执行时间和内存使用
$executionTime = round(($endTime - $startTime) * 1000, 2); // 毫秒
$memoryUsed = round(($endMemory - $startMemory) / 1024 / 1024, 2); // MB

// 仅在调试模式下输出性能信息
if (APP_DEBUG) {
    echo "<div style='position: fixed; bottom: 10px; right: 10px; background: #000; color: #0f0; padding: 10px; font-family: monospace; z-index: 9999;'>";
    echo "执行时间: {$executionTime} ms<br>";
    echo "内存使用: {$memoryUsed} MB";
    echo "</div>";
}